home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / cislib_a / bounce.act < prev    next >
Text File  |  1995-04-22  |  3KB  |  184 lines

  1. MODULE 
  2.  
  3. ; BOUNCE from ANALOG magazine 
  4. ; Issue #15 
  5. ; in GTIA Mode 11 
  6.  
  7. BYTE key=764,x,y,console=53279,attract=77 
  8. CARD ctr 
  9. INT A,B 
  10.  
  11. PROC wallchex() 
  12.  
  13.  IF x>78 THEN x=78 FI 
  14.  IF y>190 THEN y=190 FI 
  15.  IF x<1 THEN x=1 FI 
  16.  IF y<1 THEN y=1 FI 
  17.  
  18. RETURN 
  19.  
  20. PROC menu() 
  21.  
  22.  PrintE("BOUNCE from Analog Issue #15") 
  23.  PrintE("       in GTIA mode 11") 
  24.  PrintF("%E* Use stick to draw walls,%E") 
  25.  PrintF("* Hold trigger to erase,%E") 
  26.  PrintF("* Hit ESC to clear screen,%E") 
  27.  PrintE("* Hit SPACE to bounce.") 
  28.  PrintE("* ARROWS  control ball speed") 
  29.  Print("Press any key to continue.") 
  30.  key=255 
  31.  While key=255 DO OD 
  32.  key=255 
  33.   
  34. RETURN 
  35.  
  36. PROC drawscreen() 
  37.  
  38.  BYTE curs=752 
  39.  Graphics (0) 
  40.  curs=1 
  41.  Menu() 
  42.  Graphics(11) 
  43.  curs=1 
  44.  SetColor(4,0,4) ;SetColor(4,0,0) 
  45.  Color=15 
  46.  Plot(0,0) 
  47.  DrawTo(79,0) 
  48.  DrawTo(79,191) 
  49.  Drawto(0,191) 
  50.  DrawTo(0,0) 
  51.   
  52. RETURN 
  53.  
  54. PROC flash() 
  55.   
  56.  color=9 
  57.  Plot(x,y) 
  58.  FOR ctr=0 to 300 DO OD 
  59.  color=0 
  60.  Plot(x,y) 
  61.  FOR ctr=0 to 300 DO OD 
  62.  
  63. RETURN 
  64.   
  65. PROC bounce() 
  66.  
  67.  BYTE fate=53770,L=[0],PA,PB,G, 
  68.       kolor=[1],time=[32] 
  69.  
  70.  color=9 
  71.  A=1 
  72.  B=1 
  73.  Plot(x,y) 
  74.  DO 
  75.   IF key=33 THEN key=255 RETURN FI 
  76.   WHILE Locate(x+A,y+B)<15    
  77.    DO 
  78.     color=kolor 
  79.     Plot(x,y) 
  80.     x==+A 
  81.     y==+B 
  82.     wallchex() 
  83.     color=9 
  84.     Plot(x,y) 
  85.     L==+1 
  86.     FOR ctr=0 to 5*time DO OD 
  87.    OD 
  88.   IF key=7 THEN 
  89.       key=255 
  90.       time==-32 
  91.   FI 
  92.   Sound(0,L*4+20,10,8) 
  93.   PA=Locate(x+A,y) 
  94.   PB=Locate(x,y+B) 
  95.   FOR ctr=0 to 100 DO OD 
  96.   SndRst() 
  97.   L=0 
  98.   IF PA>2 AND PB>2 THEN 
  99.    A=-A 
  100.    B=-B 
  101.   ELSEIF PA>2 AND PB<3 THEN 
  102.    A=-A 
  103.    color=2 
  104.    Plot(x,y) 
  105.    y=y+B 
  106.    color=9 
  107.    Plot(x,y) 
  108.   ELSEIF PB>2 AND PA<3 THEN 
  109.    B=-B 
  110.    color=2 
  111.    Plot(x,y) 
  112.    x=x+A 
  113.    color=9 
  114.    Plot (x,y) 
  115.   ELSEIF fate>127 THEN 
  116.    B=-B 
  117.   ELSE A=-A 
  118.   FI 
  119.   kolor==+1 
  120.   IF kolor>14 THEN 
  121.     kolor=1 
  122.   FI 
  123.   attract=0 
  124.  OD 
  125.   
  126. RETURN 
  127.  
  128. PROC draw() 
  129.   
  130.  BYTE qq 
  131.  
  132.  drawscreen() 
  133.  x=40 
  134.  y=95 
  135.  DO 
  136.   IF key=28 THEN 
  137.       key=255 
  138.    drawscreen() 
  139.   ELSEIF key=33 THEN 
  140.       key=255 
  141.    bounce() 
  142.   FI 
  143.   IF Stick(0)=15 THEN 
  144.       flash() 
  145.   ELSEIF Stick(0)=7 THEN 
  146.       x=x+1 
  147.   ELSEIF Stick(0)=6 THEN 
  148.       x=x+1 
  149.       y=y-1 
  150.   ELSEIF Stick(0)=14 THEN 
  151.       y=y-1 
  152.   ELSEIF Stick(0)=5 THEN 
  153.       x=x+1 
  154.       y=y+1 
  155.   ELSEIF Stick(0)=11 THEN 
  156.       x=x-1 
  157.   ELSEIF Stick(0)=10 THEN 
  158.       x=x-1 
  159.       y=y-1 
  160.   ELSEIF Stick(0)=13 THEN 
  161.       y=y+1 
  162.   ELSEIF Stick(0)=9 THEN 
  163.       x=x-1 
  164.       y=y+1 
  165.   FI 
  166.   wallchex() 
  167.   IF Strig(0)=0 THEN 
  168.       color=0 
  169.       flash() 
  170.   ELSE 
  171.       color=15 
  172.   FI 
  173.   Plot(x,y) 
  174.   IF Stick(0)<>15 THEN 
  175.       qq=Strig(0) 
  176.       Sound(0,(200-x-y)*qq,8+2*qq,4) 
  177.       FOR ctr=0 to 1000 DO OD 
  178.       SndRst() 
  179.   FI 
  180. OD 
  181.  
  182. RETURN 
  183.  
  184.